/**
 * Copyright(c) Hainan eKing Technology co., LTD
 *
 * @date 2013年9月11日
 * 	
 * Original Author: 郑兴(zhengxing)
 *
 * ChangeLog
 *
 */
package com.hnas.sys.service.system;

import java.util.List;

import com.hnas.sys.service.system.dto.DTOUser;

/**
 * @author 郑兴(zhengxing)
 *
 */
public interface UserService {
	/**
	 * <pre>根据用户名查找用户</pre>
	 * @Auther 郑兴(zhengxing)
	 * @date 2013年9月11日 上午11:01:08
	 * @param userName
	 * @return
	 */
	public DTOUser findByUserName(String userName);
	
	/**
	 * <pre>加载所有用户</pre>
	 * @Auther 郑兴(zhengxing)
	 * @date 2013年9月11日 下午4:44:00
	 * @return
	 */
//	public List<DTOUser> loadAll();
	
	/**
	 * <pre>
	 * 根据账号查询用户
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-12
	 * @param account
	 * @return
	 * DTOUser
	 */
	public DTOUser getUserByAccount(String account);
	
	/**
	 * <pre>根据账号查询用户</pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-12
	 * @param id
	 * @return DTOUser
	 */
	public DTOUser getUserById(Long id);
	
	/**
	 * <pre>更新用户</pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-12
	 * @param id
	 * @return DTOUser
	 */
//	public void updateUser(DTOUser dtoUser);
	
	/**
	 * <pre>更新用户</pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-12
	 * @param id
	 * @return DTOUser
	 */
//	public void updateUser(DTOUser dtoUser, long id);
	
	/**
	 * <pre>添加用户</pre>
	 * @Auther 许亚明（yam-xu）
	 * @Date 2013-9-12
	 * @param user
	 */
//	public void add(DTOUser user, long id);
	
	/**
	 * <pre>刪除管理员 </pre>
	 * @Auther 许亚明(zhengxing)
	 * @Date 2013-8-13
	 * @param Long id
	 */
//	public void delete(Long id);
	
	/**
	 * <pre>刪除用户</pre>
	 * @Auther 许亚明(zhengxing)
	 * @Date 2013-8-13
	 * @param Long id
	 */
//	public void deleteUser(Long id);
	
	/**
	 * <pre>
	 * 取得具有管理权限角色的用户。
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-25
	 * @return
	 * List<DTOUser>
	 */
//	public List<DTOUser> getUserWithRoleAdmin();
	
	/**
	 * <pre>
	 * 根据账户和角色查询用户
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-25
	 * @param String account
	 * @param String roleCode
	 * @return
	 * List<DTOUser>
	 */
	public List<DTOUser> getUserWithRole(String account, String roleCode);
	
	/**
	 * <pre>
	 * 根据账户和角色查询用户
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-25
	 * @param String account
	 * @param String roleCode
	 * @return
	 * List<DTOUser>
	 */
	public List<DTOUser> getUserByAgencyid(long Agencyid);
	/**
	 * <pre>
	 * 取得所有管理员。(管理员、协议管理员、系统管理员。)
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-25
	 * @param account
	 * @return
	 * List<DTOUser>
	 */
//	public List<DTOUser> getUserWithManagerRole(String account);
	/**
	 * 
	 * <pre>
	 * 查询协议管理者对应的用户
	 * </pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-10-12
	 * @param account
	 * @param id
	 * @return
	 * List<DTOUser>
	 */
//	public List<DTOUser> getUserByAgreement(String account ,Long id, String roleCode);
	
	/**
	 * <pre>更新审核人</pre>
	 * @auther 许亚明（yam-xu）
	 * 2013-9-12
	 * @param id
	 * @return DTOUser
	 */
//	public void addOrUpdateAuditer(DTOUser dtoUser, Long id);
	
//	long updateFrontUser(DTOUser user);
	
	/**
	 * <pre></pre> 
	 *@auther 周勇（zhou-y）
	 * 2015-4-10
	 * @param con
	 * @return
	 */
//	DTOPagedList<DTOUser> search(DTOSearchUser con);//
	
	/**
	 * <pre></pre> 
	 *@auther 周勇（zhou-y）
	 * 2015-4-10
	 * @param id
	 */
//	void disable(long id);
	public List<DTOUser> getUsersWithRole(String roleName);
}
